package com.example.csmall.product.mapper;

import com.example.csmall.product.pojo.entity.Album;
import com.example.csmall.product.pojo.entity.Brand;
import com.example.csmall.product.pojo.vo.AlbumListItemVO;
import com.example.csmall.product.pojo.vo.AlbumStandardVO;
import com.example.csmall.product.pojo.vo.BrandListItemVO;
import com.example.csmall.product.pojo.vo.BrandStandardVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface BrandMapper {

    /**
     * 添加一条数据
     * @param brand 记录封装类
     * @return 受影响行数
     */
    int insert(Brand brand);

    /**
     * 添加多条记录
     * @param brandList
     * @return
     */
    int insertBatch(List<Brand> brandList);

    /**
     * 根据id删除一条数据
     * @param id 记录的id
     * @return 受影响的行数
     */
    int deleteById(Long id);

    /**
     * 批量根据id删除数据
     * @param ids
     * @return
     */
    int deleteByIds(Long[] ids);

    /**
     * 根据id修改数据
     * @param brand
     * @return
     */
    int updateInfoById(Brand brand);

    /**
     * 统计表中信息
     * @return 受影响行数
     */
    int count();

    /**
     * 根据name统计数量
     * @param name
     * @return
     */
    int countByName(String name);

    /**
     * 根据name和非此id统计数量
     * @param id
     * @param name
     * @return 行数
     */
    int countByNameAndNotId(@Param("id") Long id, @Param("name") String name);

    /**
     * 根据ID查询数据
     * @param id 要查询的id
     * @return 如果没有就返回null
     */
    BrandStandardVO getStandardById(Long id);

    /**
     * 查询表中所有字段
     * @return 返回存放所有记录的list集合
     */
    List<BrandListItemVO> list();
}
